/***************************** BEGIN LICENSE BLOCK ***************************

 The contents of this file are subject to the Mozilla Public License Version
 1.1 (the "License"); you may not use this file except in compliance with
 the License. You may obtain a copy of the License at
 http://www.mozilla.org/MPL/MPL-1.1.html
 
 Software distributed under the License is distributed on an "AS IS" basis,
 WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
 for the specific language governing rights and limitations under the License.
 
 The Original Code is the "EO-SPS Framework".
 
 The Initial Developer of the Original Code is Spotimage S.A.
 Portions created by the Initial Developer are Copyright (C) 2007
 the Initial Developer. All Rights Reserved.
 
 Contributor(s): 
    Alexandre Robin <alexandre.robin@spotimage.fr>
 
******************************* END LICENSE BLOCK ***************************/

package com.spotimage.eosps;


/**
 * <p><b>Title:</b><br/>
 * EO Constants
 * </p>
 *
 * <p><b>Description:</b><br/>
 * This interface contains all common constants, URI, enumerations
 * used in the library. These are constants used in both optical and
 * radar cases.
 * Separate classes provide optical and radar specific constants.
 * </p>
 *
 * <p>Copyright (c) 2008, Spot Image</p>
 * @author Alexandre Robin <alexandre.robin@spotimage.fr>
 * @date July, 10th 2008
 * @since 1.0
 */
public interface EOConstants
{
	// namespace and XML elements
	public static String EO_PREFIX = "eo";
	public static String EO_NAMESPACE = "urn:ogc:def:property:CEOS";
	public static String EO_URI_PREFIX = "urn:ogc:def:property:CEOS:";
	public static String FEASIBILITY_LEVEL = "eo:FeasibilityLevel";
	
	// parameter URIs
	public static String PRIORITY_URI = EO_URI_PREFIX + "eop:PriorityLevel";
	
	public static String ROI_URI = EO_URI_PREFIX + "eop:RegionOfInterest";
	public static String POLYGON_URI = "urn:ogc:def:property:ISO-19107:Polygon";
	public static String CIRCLE_URI = "urn:ogc:def:property:ISO-19107:Circle";
	
	public static String TOI_URI = EO_URI_PREFIX + "eop:TimeOfInterest";
	public static String SURVEY_PERIOD_URI = EO_URI_PREFIX + "eop:SurveyPeriod";
	public static String TIME_OCCURENCES_URI = EO_URI_PREFIX + "eop:TemporalSeriesOccurences";
	public static String TIME_PERIODICITY_URI = EO_URI_PREFIX + "eop:TemporalSeriesPeriodicity";
	public static String TIME_LATEST_START_URI = EO_URI_PREFIX + "eop:TemporalSeriesLatestStart";
	
	public static String ACQ_TYPE_URI = EO_URI_PREFIX + "eop:AcquisitionType";
	public static String MONO_ACQ_URI = EO_URI_PREFIX + "eop:MonoscopicAcquisition";
	public static String STEREO_ACQ_URI = EO_URI_PREFIX + "eop:StereoscopicAcquisition";
	
	public static String COVERAGE_TYPE_URI = EO_URI_PREFIX + "eop:CoverageType";	
	public static String AZIM_INC_URI = EO_URI_PREFIX + "eop:AzimuthIncidenceAngle";
	public static String ELEV_INC_URI = EO_URI_PREFIX + "eop:ElevationIncidenceAngle";	
	public static String GROUND_RES_URI = EO_URI_PREFIX + "eop:GroundResolution";
	public static String INSTRUMENT_MODE_URI = EO_URI_PREFIX + "eop:InstrumentMode";
	public static String FUSION_URI = EO_URI_PREFIX + "eop:FusionAccepted";
	
	public static String CELL_LIST_URI = EO_URI_PREFIX + "eop:CellList";
	public static String SEGMENT_LIST_URI = EO_URI_PREFIX + "eop:SegmentList";
	
	public static String STATUS_URI = EO_URI_PREFIX + "eop:Status";
	public static String SUCCESS_RATE_URI = EO_URI_PREFIX + "eop:SuccessRate";
	
	public static String OBJECT_ID_URI = EO_URI_PREFIX + "eop:ObjectID";
	public static String PLATFORM_ID_URI = EO_URI_PREFIX + "eop:PlatformID";
	public static String PLATFORM_NAME_URI = EO_URI_PREFIX + "eop:PlatformName";
	public static String INSTRUMENT_ID_URI = EO_URI_PREFIX + "eop:InstrumentID";
	public static String INSTRUMENT_NAME_URI = EO_URI_PREFIX + "eop:InstrumentName";
	
	public static String ACQ_START_URI = EO_URI_PREFIX + "eop:AcquisitionStart";
	public static String ACQ_STOP_URI = EO_URI_PREFIX + "eop:AcquisitionStop";
	public static String NEXT_ATTEMPT_DATE_URI = EO_URI_PREFIX + "eop:NextAttemptDate";
	public static String SUCCESS_DATE_URI = EO_URI_PREFIX + "eop:EstimatedSuccessDate";
	public static String REMAINING_ATTEMPTS_URI = EO_URI_PREFIX + "eop:RemainingAttempts";
	
	public static String ORBIT_URI = EO_URI_PREFIX + "eop:OrbitNumber";
	public static String TRACK_URI = EO_URI_PREFIX + "eop:TrackNumber";
	public static String FRAME_URI = EO_URI_PREFIX + "eop:FrameNumber";
	
	public static String STEREO_ID_URI = EO_URI_PREFIX + "eop:StereoSegmentID";
	public static String FOOTPRINT_URI = EO_URI_PREFIX + "eop:Footprint";
	public static String PREVIEW_URI = EO_URI_PREFIX + "eop:SegmentPreview";
	
	public static String ESTIMATED_COST_URI = EO_URI_PREFIX + "eop:EstimatedCost";
	public static String PERCENT_COMPLETION_URI = EO_URI_PREFIX + "eop:PercentCompletion";
		
	// parameter value enumerations
	public enum FeasibilityLevel {QUICK, FULL};
	public enum RoiType {POLYGON, CIRCLE, UNKOWN};
	public enum ToiType {PERIOD, SERIES, UNKOWN};
	public enum AcquisitionType {MONO, STEREO, UNKOWN};
	public enum CoverageType {MONOPASS, MULTIPASS, SINGLE_SWATH};
	
	// events/topics
	public static String EVENT_SEGMENT_ESTIMATED = "SEGMENT_ESTIMATED";
	public static String EVENT_SEGMENT_SCHEDULED = "SEGMENT_SCHEDULED";
	public static String EVENT_SEGMENT_ACQUIRED = "SEGMENT_ACQUIRED";
	public static String EVENT_SEGMENT_VALIDATED = "SEGMENT_VALIDATED";
	public static String EVENT_SEGMENT_CANCELLED = "SEGMENT_CANCELLED";
}
